home *** CD-ROM | disk | FTP | other *** search
/ Windows News 2005 November / WNnov2005.iso / Windows / Indispensables / Movie Collection / MovieCollection5403.exe / {app} / udf / ib_udf.sql < prev    next >
Text File  |  2004-08-30  |  19KB  |  678 lines

  1. /*
  2.  * The contents of this file are subject to the Interbase Public
  3.  * License Version 1.0 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy
  5.  * of the License at http://www.Inprise.com/IPL.html
  6.  *
  7.  * Software distributed under the License is distributed on an
  8.  * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
  9.  * or implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  *
  12.  * The Original Code was created by Inprise Corporation
  13.  * and its predecessors. Portions created by Inprise Corporation are
  14.  * Copyright (C) Inprise Corporation.
  15.  *
  16.  * All Rights Reserved.
  17.  * Contributor(s): ______________________________________.
  18.  * $Id: ib_udf.sql,v 1.4.2.1 2004/08/30 15:56:22 skidder Exp $
  19.  * Revision 1.2  2000/11/28 06:47:52  fsg
  20.  * Changed declaration of ascii_char in ib_udf.sql
  21.  * to get correct result as proposed by Claudio Valderrama
  22.  * 2001.5.19 Claudio Valderrama, add the declaration of alternative
  23.  * substrlen function to handle string,start,length instead.
  24.  *
  25.  */
  26. /*****************************************
  27.  *
  28.  *    a b s
  29.  *
  30.  *****************************************
  31.  *
  32.  * Functional description:
  33.  *     Returns the absolute value of a 
  34.  *     number.  
  35.  *
  36.  *****************************************/
  37. DECLARE EXTERNAL FUNCTION abs 
  38.     DOUBLE PRECISION
  39.     RETURNS DOUBLE PRECISION BY VALUE
  40.     ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
  41.  
  42. /*****************************************
  43.  *
  44.  *    a c o s
  45.  *
  46.  *****************************************
  47.  *
  48.  * Functional description:
  49.  *    Returns the arccosine of a number 
  50.  *    between -1 and 1, if the number is
  51.  *    out of bounds it returns NaN, as handled
  52.  *    by the _matherr routine.
  53.  *
  54.  *****************************************/
  55. DECLARE EXTERNAL FUNCTION acos 
  56.     DOUBLE PRECISION
  57.     RETURNS DOUBLE PRECISION BY VALUE
  58.     ENTRY_POINT 'IB_UDF_acos' MODULE_NAME 'ib_udf';
  59.  
  60. /*****************************************
  61.  *
  62.  *    a s c i i _ c h a r
  63.  *
  64.  *****************************************
  65.  *
  66.  * Functional description:
  67.  *    Returns the ASCII character corresponding
  68.  *    with the value passed in.
  69.  *
  70.  *****************************************/
  71. DECLARE EXTERNAL FUNCTION ascii_char
  72.     INTEGER
  73.     RETURNS CSTRING(1) FREE_IT
  74.     ENTRY_POINT 'IB_UDF_ascii_char' MODULE_NAME 'ib_udf';
  75.  
  76. /*****************************************
  77.  *
  78.  *    a s c i i _ v a l
  79.  *
  80.  *****************************************
  81.  *
  82.  * Functional description:
  83.  *    Returns the ascii value of the character
  84.  *     passed in.
  85.  *
  86.  *****************************************/
  87. DECLARE EXTERNAL FUNCTION ascii_val
  88.     CHAR(1)
  89.     RETURNS INTEGER BY VALUE
  90.     ENTRY_POINT 'IB_UDF_ascii_val' MODULE_NAME 'ib_udf';
  91.  
  92. /*****************************************
  93.  *
  94.  *    a s i n
  95.  *
  96.  *****************************************
  97.  *
  98.  * Functional description:
  99.  *    Returns the arcsin of a number between
  100.  *    -1 and 1, if the number is out of
  101.  *    range NaN is returned.
  102.  *
  103.  *****************************************/
  104. DECLARE EXTERNAL FUNCTION asin 
  105.     DOUBLE PRECISION
  106.     RETURNS DOUBLE PRECISION BY VALUE
  107.     ENTRY_POINT 'IB_UDF_asin' MODULE_NAME 'ib_udf';
  108.  
  109. /*****************************************
  110.  *
  111.  *    a t a n
  112.  *
  113.  *****************************************
  114.  *
  115.  * Functional description:
  116.  *    Returns the arctangent of a number.
  117.  *    
  118.  *
  119.  *****************************************/
  120. DECLARE EXTERNAL FUNCTION atan 
  121.     DOUBLE PRECISION
  122.     RETURNS DOUBLE PRECISION BY VALUE
  123.     ENTRY_POINT 'IB_UDF_atan' MODULE_NAME 'ib_udf';
  124.  
  125. /*****************************************
  126.  *
  127.  *    a t a n 2
  128.  *
  129.  *****************************************
  130.  *
  131.  * Functional description:
  132.  *     Returns the arctangent of the
  133.  *    first param / the second param.
  134.  *
  135.  *****************************************/
  136. DECLARE EXTERNAL FUNCTION atan2 
  137.     DOUBLE PRECISION, DOUBLE PRECISION
  138.     RETURNS DOUBLE PRECISION BY VALUE
  139.     ENTRY_POINT 'IB_UDF_atan2' MODULE_NAME 'ib_udf';
  140.  
  141. /*****************************************
  142.  *
  143.  *    b i n _ a n d
  144.  *
  145.  *****************************************
  146.  *
  147.  * Functional description:
  148.  *    Returns the result of a binary AND 
  149.  *    operation performed on the two numbers.
  150.  *
  151.  *****************************************/
  152. DECLARE EXTERNAL FUNCTION bin_and 
  153.     INTEGER, INTEGER
  154.     RETURNS INTEGER BY VALUE
  155.     ENTRY_POINT 'IB_UDF_bin_and' MODULE_NAME 'ib_udf';
  156.  
  157. /*****************************************
  158.  *
  159.  *    b i n _ o r
  160.  *
  161.  *****************************************
  162.  *
  163.  * Functional description:
  164.  *    Returns the result of a binary OR 
  165.  *    operation performed on the two numbers.
  166.  *
  167.  *****************************************/
  168. DECLARE EXTERNAL FUNCTION bin_or 
  169.     INTEGER, INTEGER
  170.     RETURNS INTEGER BY VALUE
  171.     ENTRY_POINT 'IB_UDF_bin_or' MODULE_NAME 'ib_udf';
  172.  
  173. /*****************************************
  174.  *
  175.  *    b i n _ x o r
  176.  *
  177.  *****************************************
  178.  *
  179.  * Functional description:
  180.  *    Returns the result of a binary XOR 
  181.  *    operation performed on the two numbers.
  182.  *
  183.  *****************************************/
  184. DECLARE EXTERNAL FUNCTION bin_xor 
  185.     INTEGER, INTEGER
  186.     RETURNS INTEGER BY VALUE
  187.     ENTRY_POINT 'IB_UDF_bin_xor' MODULE_NAME 'ib_udf';
  188.  
  189. /*****************************************
  190.  *
  191.  *    c e i l i n g
  192.  *
  193.  *****************************************
  194.  *
  195.  * Functional description:
  196.  *    Returns a double value representing 
  197.  *    the smallest integer that is greater 
  198.  *    than or equal to the input value.
  199.  *
  200.  *****************************************/
  201. DECLARE EXTERNAL FUNCTION ceiling 
  202.     DOUBLE PRECISION
  203.     RETURNS DOUBLE PRECISION BY VALUE
  204.     ENTRY_POINT 'IB_UDF_ceiling' MODULE_NAME 'ib_udf';
  205.  
  206. /*****************************************
  207.  *
  208.  *    c o s
  209.  *
  210.  *****************************************
  211.  *
  212.  * Functional description:
  213.  *    The cos function returns the cosine 
  214.  *    of x. If x is greater than or equal 
  215.  *    to 263, or less than or equal to -263, 
  216.  *    a loss of significance in the result 
  217.  *    of a call to cos occurs, in which case 
  218.  *    the function generates a _TLOSS error 
  219.  *    and returns an indefinite (same as a 
  220.  *    quiet NaN).
  221.  *
  222.  *****************************************/
  223. DECLARE EXTERNAL FUNCTION cos 
  224.     DOUBLE PRECISION
  225.     RETURNS DOUBLE PRECISION BY VALUE
  226.     ENTRY_POINT 'IB_UDF_cos' MODULE_NAME 'ib_udf';
  227.  
  228. /*****************************************
  229.  *
  230.  *    c o s h
  231.  *
  232.  *****************************************
  233.  *
  234.  * Functional description:
  235.  *    The cosh function returns the hyperbolic cosine 
  236.  *    of x. If x is greater than or equal 
  237.  *    to 263, or less than or equal to -263, 
  238.  *    a loss of significance in the result 
  239.  *    of a call to cos occurs, in which case 
  240.  *    the function generates a _TLOSS error 
  241.  *    and returns an indefinite (same as a 
  242.  *    quiet NaN).
  243.  *
  244.  *****************************************/
  245. DECLARE EXTERNAL FUNCTION cosh 
  246.     DOUBLE PRECISION
  247.     RETURNS DOUBLE PRECISION BY VALUE
  248.     ENTRY_POINT 'IB_UDF_cosh' MODULE_NAME 'ib_udf';
  249.  
  250. /*****************************************
  251.  *
  252.  *    c o t
  253.  *
  254.  *****************************************
  255.  *
  256.  * Functional description:
  257.  *    Returns 1 over the tangent of the
  258.  *    input parameter.
  259.  *
  260.  *****************************************/
  261. DECLARE EXTERNAL FUNCTION cot 
  262.     DOUBLE PRECISION
  263.     RETURNS DOUBLE PRECISION BY VALUE
  264.     ENTRY_POINT 'IB_UDF_cot' MODULE_NAME 'ib_udf';
  265.  
  266. /*****************************************
  267.  *
  268.  *    d i v
  269.  *
  270.  *****************************************
  271.  *
  272.  * Functional description:
  273.  *    Returns the quotient part of the division
  274.  *    of the two input parameters.
  275.  *
  276.  *****************************************/
  277. DECLARE EXTERNAL FUNCTION div 
  278.     INTEGER, INTEGER
  279.     RETURNS DOUBLE PRECISION BY VALUE
  280.     ENTRY_POINT 'IB_UDF_div' MODULE_NAME 'ib_udf';
  281.  
  282. /*****************************************
  283.  *
  284.  *    f l o o r
  285.  *
  286.  *****************************************
  287.  *
  288.  * Functional description:
  289.  *     Returns a floating-point value 
  290.  *     representing the largest integer that 
  291.  *    is less than or equal to x    
  292.  *
  293.  *****************************************/
  294. DECLARE EXTERNAL FUNCTION floor 
  295.     DOUBLE PRECISION
  296.     RETURNS DOUBLE PRECISION BY VALUE
  297.     ENTRY_POINT 'IB_UDF_floor' MODULE_NAME 'ib_udf';
  298.  
  299. /*****************************************
  300.  *
  301.  *    l n
  302.  *
  303.  *****************************************
  304.  *
  305.  * Functional description:
  306.  *    Returns the natural log of a number.
  307.  *
  308.  *****************************************/
  309. DECLARE EXTERNAL FUNCTION ln 
  310.     DOUBLE PRECISION
  311.     RETURNS DOUBLE PRECISION BY VALUE
  312.     ENTRY_POINT 'IB_UDF_ln' MODULE_NAME 'ib_udf';
  313.  
  314. /*****************************************
  315.  *
  316.  *    l o g
  317.  *
  318.  *****************************************
  319.  *
  320.  * Functional description:
  321.  *    log (x,y) returns the logarithm 
  322.  *    base x of y.
  323.  *
  324.  *****************************************/
  325. DECLARE EXTERNAL FUNCTION log 
  326.     DOUBLE PRECISION, DOUBLE PRECISION
  327.     RETURNS DOUBLE PRECISION BY VALUE
  328.     ENTRY_POINT 'IB_UDF_log' MODULE_NAME 'ib_udf';
  329.  
  330. /*****************************************
  331.  *
  332.  *    l o g 1 0
  333.  *
  334.  *****************************************
  335.  *
  336.  * Functional description:
  337.  *    Returns the logarithm base 10 of the
  338.  *    input parameter.
  339.  *
  340.  *****************************************/
  341. DECLARE EXTERNAL FUNCTION log10 
  342.     DOUBLE PRECISION
  343.     RETURNS DOUBLE PRECISION BY VALUE
  344.     ENTRY_POINT 'IB_UDF_log10' MODULE_NAME 'ib_udf';
  345.  
  346. /*****************************************
  347.  *
  348.  *    l o w e r
  349.  *
  350.  *****************************************
  351.  *
  352.  * Functional description:
  353.  *    Returns the input string into lower 
  354.  *    case characters.  Note: This function
  355.  *    will not work with international and 
  356.  *    non-ascii characters.
  357.  *    Note: This function is NOT limited to
  358.  *    receiving and returning only 255 characters,
  359.  *    rather, it can use as long as 32767 
  360.  *     characters which is the limit on an 
  361.  *    INTERBASE character string.
  362.  *
  363.  *****************************************/
  364. DECLARE EXTERNAL FUNCTION lower 
  365.     CSTRING(255)
  366.     RETURNS CSTRING(255) FREE_IT
  367.     ENTRY_POINT 'IB_UDF_lower' MODULE_NAME 'ib_udf';
  368.  
  369. /*****************************************
  370.  *
  371.  *    l p a d
  372.  *
  373.  *****************************************
  374.  *
  375.  * Functional description:
  376.  *    Appends the given character to beginning
  377.  *    of the input string until length of the result
  378.  *    string becomes equal to the given number.
  379.  *    Note: This function is NOT limited to
  380.  *    receiving and returning only 255 characters,
  381.  *    rather, it can use as long as 32767 
  382.  *     characters which is the limit on an 
  383.  *    INTERBASE character string.
  384.  *
  385.  *****************************************/
  386. DECLARE EXTERNAL FUNCTION lpad 
  387.     CSTRING(255), INTEGER, CSTRING(1)
  388.     RETURNS CSTRING(255) FREE_IT
  389.     ENTRY_POINT 'IB_UDF_lpad' MODULE_NAME 'ib_udf';
  390.  
  391. /*****************************************
  392.  *
  393.  *    l t r i m
  394.  *
  395.  *****************************************
  396.  *
  397.  * Functional description:
  398.  *    Removes leading spaces from the input
  399.  *    string.
  400.  *    Note: This function is NOT limited to
  401.  *    receiving and returning only 255 characters,
  402.  *    rather, it can use as long as 32767 
  403.  *     characters which is the limit on an 
  404.  *    INTERBASE character string.
  405.  *
  406.  *****************************************/
  407. DECLARE EXTERNAL FUNCTION ltrim 
  408.     CSTRING(255)
  409.     RETURNS CSTRING(255) FREE_IT
  410.     ENTRY_POINT 'IB_UDF_ltrim' MODULE_NAME 'ib_udf';
  411.  
  412. /*****************************************
  413.  *
  414.  *    m o d
  415.  *
  416.  *****************************************
  417.  *
  418.  * Functional description:
  419.  *    Returns the remainder part of the 
  420.  *    division of the two input parameters.
  421.  *
  422.  *****************************************/
  423. DECLARE EXTERNAL FUNCTION mod 
  424.     INTEGER, INTEGER
  425.     RETURNS DOUBLE PRECISION BY VALUE
  426.     ENTRY_POINT 'IB_UDF_mod' MODULE_NAME 'ib_udf';
  427.  
  428. /*****************************************
  429.  *
  430.  *    p i
  431.  *
  432.  *****************************************
  433.  *
  434.  * Functional description:
  435.  *    Returns the value of pi = 3.1459...
  436.  *
  437.  *****************************************/
  438. DECLARE EXTERNAL FUNCTION pi 
  439.     RETURNS DOUBLE PRECISION BY VALUE
  440.     ENTRY_POINT 'IB_UDF_pi' MODULE_NAME 'ib_udf';
  441.  
  442. /*****************************************
  443.  *
  444.  *    r a n d
  445.  *
  446.  *****************************************
  447.  *
  448.  * Functional description:
  449.  *    Returns a random number between 0 
  450.  *    and 1.  Note the random number
  451.  *    generator is seeded using the current 
  452.  *    time.
  453.  *
  454.  *****************************************/
  455. DECLARE EXTERNAL FUNCTION rand 
  456.     RETURNS DOUBLE PRECISION BY VALUE
  457.     ENTRY_POINT 'IB_UDF_rand' MODULE_NAME 'ib_udf';
  458.  
  459. /*****************************************
  460.  *
  461.  *    r p a d
  462.  *
  463.  *****************************************
  464.  *
  465.  * Functional description:
  466.  *    Appends the given character to end
  467.  *    of the input string until length of the result
  468.  *    string becomes equal to the given number.
  469.  *    Note: This function is NOT limited to
  470.  *    receiving and returning only 255 characters,
  471.  *    rather, it can use as long as 32767 
  472.  *     characters which is the limit on an 
  473.  *    INTERBASE character string.
  474.  *
  475.  *****************************************/
  476. DECLARE EXTERNAL FUNCTION rpad 
  477.     CSTRING(255), INTEGER, CSTRING(1)
  478.     RETURNS CSTRING(255) FREE_IT
  479.     ENTRY_POINT 'IB_UDF_rpad' MODULE_NAME 'ib_udf';
  480.  
  481. /*****************************************
  482.  *
  483.  *    r t r i m
  484.  *
  485.  *****************************************
  486.  *
  487.  * Functional description:
  488.  *    Removes trailing spaces from the input
  489.  *    string.
  490.  *    Note: This function is NOT limited to
  491.  *    receiving and returning only 255 characters,
  492.  *    rather, it can use as long as 32767 
  493.  *     characters which is the limit on an 
  494.  *    INTERBASE character string.
  495.  *
  496.  *****************************************/
  497. DECLARE EXTERNAL FUNCTION rtrim 
  498.     CSTRING(255)
  499.     RETURNS CSTRING(255) FREE_IT
  500.     ENTRY_POINT 'IB_UDF_rtrim' MODULE_NAME 'ib_udf';
  501.  
  502. /*****************************************
  503.  *
  504.  *    s i g n
  505.  *
  506.  *****************************************
  507.  *
  508.  * Functional description:
  509.  *    Returns 1, 0, or -1 depending on whether
  510.  *     the input value is positive, zero or 
  511.  *    negative, respectively.
  512.  *
  513.  *****************************************/
  514. DECLARE EXTERNAL FUNCTION sign 
  515.     DOUBLE PRECISION
  516.     RETURNS INTEGER BY VALUE
  517.     ENTRY_POINT 'IB_UDF_sign' MODULE_NAME 'ib_udf';
  518.  
  519. /*****************************************
  520.  *
  521.  *    s i n
  522.  *
  523.  *****************************************
  524.  *
  525.  * Functional description:
  526.  *    Returns the sine of x. If x is greater 
  527.  *    than or equal to 263, or less than or 
  528.  *    equal to -263, a loss of significance 
  529.  *    in the result occurs, in which case the 
  530.  *    function generates a _TLOSS error and 
  531.  *    returns an indefinite (same as a quiet NaN).
  532.  *
  533.  *****************************************/
  534. DECLARE EXTERNAL FUNCTION sin 
  535.     DOUBLE PRECISION
  536.     RETURNS DOUBLE PRECISION BY VALUE
  537.     ENTRY_POINT 'IB_UDF_sin' MODULE_NAME 'ib_udf';
  538.  
  539. /*****************************************
  540.  *
  541.  *    s i n h
  542.  *
  543.  *****************************************
  544.  *
  545.  * Functional description:
  546.  *    Returns the hyperbolic sine of x. If x is greater 
  547.  *    than or equal to 263, or less than or 
  548.  *    equal to -263, a loss of significance 
  549.  *    in the result occurs, in which case the 
  550.  *    function generates a _TLOSS error and 
  551.  *    returns an indefinite (same as a quiet NaN).
  552.  *
  553.  *****************************************/
  554. DECLARE EXTERNAL FUNCTION sinh 
  555.     DOUBLE PRECISION
  556.     RETURNS DOUBLE PRECISION BY VALUE
  557.     ENTRY_POINT 'IB_UDF_sinh' MODULE_NAME 'ib_udf';
  558.  
  559. /*****************************************
  560.  *
  561.  *    s q r t
  562.  *
  563.  *****************************************
  564.  *
  565.  * Functional description:
  566.  *    Returns the square root of a number.
  567.  *
  568.  *****************************************/
  569. DECLARE EXTERNAL FUNCTION sqrt 
  570.     DOUBLE PRECISION
  571.     RETURNS DOUBLE PRECISION BY VALUE
  572.     ENTRY_POINT 'IB_UDF_sqrt' MODULE_NAME 'ib_udf';
  573.  
  574. /*****************************************
  575.  *
  576.  *    s u b s t r
  577.  *
  578.  *****************************************
  579.  *
  580.  * Functional description:
  581.  *    substr(s,m,n) returns the substring 
  582.  *    of s which starts at position m and
  583.  *    ending at position n.
  584.  *    Note: This function is NOT limited to
  585.  *    receiving and returning only 255 characters,
  586.  *    rather, it can use as long as 32767 
  587.  *     characters which is the limit on an 
  588.  *    INTERBASE character string.
  589.  *      Change by Claudio Valderrama: when n>length(s),
  590.  *      the result will be the original string instead
  591.  *      of NULL as it was originally designed.
  592.  *
  593.  *****************************************/
  594. DECLARE EXTERNAL FUNCTION substr 
  595.     CSTRING(255), SMALLINT, SMALLINT
  596.     RETURNS CSTRING(255) FREE_IT
  597.     ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';
  598.  
  599. /*****************************************
  600.  *
  601.  *    s u b s t r l e n
  602.  *
  603.  *****************************************
  604.  *
  605.  * Functional description:
  606.  *    substr(s,i,l) returns the substring 
  607.  *    of s which starts at position i and
  608.  *    ends at position i+l-1, being l the length.
  609.  *    Note: This function is NOT limited to
  610.  *    receiving and returning only 255 characters,
  611.  *    rather, it can use as long as 32767 
  612.  *     characters which is the limit on an 
  613.  *    INTERBASE character string.
  614.  *
  615.  *****************************************/
  616. DECLARE EXTERNAL FUNCTION substrlen 
  617.     CSTRING(255), SMALLINT, SMALLINT
  618.     RETURNS CSTRING(255) FREE_IT
  619.     ENTRY_POINT 'IB_UDF_substrlen' MODULE_NAME 'ib_udf';
  620.  
  621. /*****************************************
  622.  *
  623.  *    s t r l e n
  624.  *
  625.  *****************************************
  626.  *
  627.  * Functional description:
  628.  *    Returns the length of a given string.
  629.  *
  630.  *****************************************/
  631. DECLARE EXTERNAL FUNCTION strlen 
  632.     CSTRING(32767)
  633.     RETURNS INTEGER BY VALUE
  634.     ENTRY_POINT 'IB_UDF_strlen' MODULE_NAME 'ib_udf';
  635.  
  636. /*****************************************
  637.  *
  638.  *    t a n
  639.  *
  640.  *****************************************
  641.  *
  642.  * Functional description:
  643.  *     Returns the tangent of x. If x is 
  644.  *    greater than or equal to 263, or less 
  645.  *    than or equal to -263, a loss of 
  646.  *    significance in the result occurs, in 
  647.  *    which case the function generates a 
  648.  *    _TLOSS error and returns an indefinite 
  649.  *    (same as a quiet NaN).
  650.  *
  651.  *****************************************/
  652. DECLARE EXTERNAL FUNCTION tan 
  653.     DOUBLE PRECISION
  654.     RETURNS DOUBLE PRECISION BY VALUE
  655.     ENTRY_POINT 'IB_UDF_tan' MODULE_NAME 'ib_udf';
  656.  
  657. /*****************************************
  658.  *
  659.  *    t a n h
  660.  *
  661.  *****************************************
  662.  *
  663.  * Functional description:
  664.  *     Returns the tangent of x. If x is 
  665.  *    greater than or equal to 263, or less 
  666.  *    than or equal to -263, a loss of 
  667.  *    significance in the result occurs, in 
  668.  *    which case the function generates a 
  669.  *    _TLOSS error and returns an indefinite 
  670.  *    (same as a quiet NaN).
  671.  *    
  672.  *****************************************/
  673. DECLARE EXTERNAL FUNCTION tanh 
  674.     DOUBLE PRECISION
  675.     RETURNS DOUBLE PRECISION BY VALUE
  676.     ENTRY_POINT 'IB_UDF_tanh' MODULE_NAME 'ib_udf';
  677.  
  678.